package jobascjp;

public class Electronic implements Device { public void doIt(){} }

abstract class Phone1 extends Electronic {}

abstract class Phone2 extends Electronic { public void doIt(int x){} }

class Phone3 extends Electronic implements Device { public void doStuff(){}; 
	public static void main(String[] args) { 
		System.out.println("Durch!");
		// What is the result?
		// Compilation succeeds.
		// Compilation fails due to an error on line 1;
		// Compilation fails due to an error on line 3;
		// Compilation fails due to an error on line 5;
		// Compilation fails due to an error on line 7;
		// Compilation fails due to an error on line 9;
		
		// Anmerkungen:
		// A ist korrekt, es kompiliert problemlos. Phone-x erweitern 
		// Electronic korrekt, dazu passt auch die Deklaration und 
		// Implementierung des Interfaces. Die Methode doit(int x) in 
        // Phone2 ist eine Ueberladung, die vom Interface-geforderte Methode
        // wird aber schon durch die Elternklasse abgedeckt!
	}
}

interface Device { public void doIt(); } // eigentlich line 9!
